Manon.icu

I'm here to make you a better developer by teaching you everything I know about building for the web.

Published 2022-06-08

Postgresql - IS NULL

使用 Postgresql IS NULL运算符来检查值是否为 NULL。

IS NULL

在数据库中,NULL 是一个特殊的值,它表示一个值没有被设置。

NULL和任何值比较都会返回 NULL,即使是NULL本身。

NULL = NULL

首先创建一个表,并且插入一些数据:

CREATE TABLE contacts(
    id INT GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    email VARCHAR(255) NOT NULL,
    phone VARCHAR(15),
    PRIMARY KEY (id)
);

INSERT INTO contacts(first_name, last_name, email, phone)
VALUES ('John','Doe','john.doe@example.com',NULL),
    ('Lily','Bush','lily.bush@example.com','(408-234-2764)');

找出contacts表中没有电话号码的联系人

SELECT
    id,
    first_name,
    last_name,
    email,
    phone
FROM
    contacts
WHERE
    phone = NULL;

以上语句没有返回任何结果。因为phone=NULL总是返回false,应当使用phone IS NULL

SELECT
    id,
    first_name,
    last_name,
    email,
    phone
FROM
    contacts
WHERE
    phone IS NULL;

7kkQKi

IS NOT NULL

IS NULL相反,IS NOT NULL检查值是否不为 NULL。

比如,查询有电话号码的联系人

SELECT
    id,
    first_name,
    last_name,
    email,
    phone
FROM
    contacts
WHERE
    phone IS NOT NULL;

H8nzZ9

Comments

No Comments!